#include "node_header.h"

class node {

	int   currentStatus;

	/*
	 * currentStatus:
	 *  This variable is used to track the hypotheses number
	 *  This is kinda a hack. This eventually will be changed to
	 *  something more robust.
	 *
	 */

	float hypoStatus; 

	/*
	 * hypoStatus:
	 *  This variable is used to track the rating of the current hypotheses rating.
	 *  This variable is able to be changed ( rated up or down ) by the app.
	 *
	 */

	float weight;	
	/*
	 * weight;
	 *  This is the node weight, the weight determines how much this node
	 *  can affect other nodes. 
	 *
	 */

    public:

	node (){
		this->currentStatus = __DEFAULT_CURRENT_STATUS;
		   this->hypoStatus = __DEFAULT_HYPO_STATUS;
		       this->weight = __DEFAULT_NODE_WEIGHT;
	}
	node ( int status ) {
		this->currentStatus = status;
		   this->hypoStatus = __DEFAULT_HYPO_STATUS;
		       this->weight = __DEFAULT_NODE_WEIGHT;
	}

	void setWeight( float w ) {
		this->weight = w;
	}
	float getWeight() {
		return this->weight;
	}
	void setStatus( int s ) {
		this->currentStatus = s;
	}

	int getStatus() {
		return this->currentStatus;
	}

	void rateHypo( float r ) {
		this->hypoStatus = this->hypoStatus + r;
	}
	void resetHypo() {
		this->hypoStatus = __DEFAULT_HYPO_STATUS;
	}
	float getHypoStatus() {
		return this->hypoStatus;
	}



};
